# 应该是键表示物体object 值区间表示600HOI类的区间
# https://blog.csdn.net/irving512/article/details/115122416 数据集链接
#   4: [0, 9] airplane  , 1: [10, 23] bicycle   , 14: [24, 30] bird, 

hico_object2label_index = {
    4: [0, 9], 1: [10, 23], 14: [24, 30], 
    8: [31, 45], 39: [46, 53], 5: [54, 64], 
    2: [65, 75], 15: [76, 85], 56: [86, 91], 
    57: [92, 95], 19: [96, 106], 60: [107, 110], 
    16: [111, 128], 17: [129, 145], 3: [146, 159], 
    0: [160, 169], 58: [170, 173], 18: [174, 185], 
    6: [186, 193], 62: [194, 197], 47: [198, 207], 
    24: [208, 213], 46: [214, 223], 34: [224, 231], 
    35: [232, 234], 21: [235, 238], 59: [239, 242], 
    13: [243, 246], 73: [247, 251], 45: [252, 256], 
    50: [257, 263], 55: [264, 272], 51: [273, 282], 
    67: [283, 289], 74: [290, 294], 41: [295, 304], 
    54: [305, 312], 20: [313, 324], 10: [325, 329], 
    42: [330, 335], 29: [336, 341], 23: [342, 347], 
    78: [348, 351], 26: [352, 355], 52: [356, 362], 
    66: [363, 367], 33: [368, 375], 43: [376, 382], 
    63: [383, 388], 68: [389, 392], 64: [393, 396], 
    49: [397, 406], 69: [407, 413], 12: [414, 417], 
    53: [418, 428], 72: [429, 433], 65: [434, 437], 
    48: [438, 444], 76: [445, 448], 71: [449, 452], 
    36: [453, 462], 30: [463, 473], 31: [474, 482], 
    44: [483, 487], 32: [488, 501], 11: [502, 505], 
    28: [506, 515], 37: [516, 527], 77: [528, 532], 
    38: [533, 537], 27: [538, 545], 70: [546, 549], 
    61: [550, 557], 79: [558, 561], 9: [562, 566], 
    7: [567, 575], 25: [576, 583], 75: [584, 587], 
    40: [588, 594], 22: [595, 599]
}

hoi_index2action = {1: 'board', 2: 'direct', 3: 'exit', 4: 'fly', 5: 'inspect', 6: 'load', 7: 'ride', 8: 'sit_on', 
               9: 'wash', 10: 'no_interaction', 11: 'carry', 12: 'hold', 13: 'inspect', 14: 'jump', 15: 'hop_on', 
               16: 'park', 17: 'push', 18: 'repair', 19: 'ride', 20: 'sit_on', 21: 'straddle', 22: 'walk', 
               23: 'wash', 24: 'no_interaction', 25: 'chase', 26: 'feed', 27: 'hold', 28: 'pet', 29: 'release', 
               30: 'watch', 31: 'no_interaction', 32: 'board', 33: 'drive', 34: 'exit', 35: 'inspect', 36: 'jump', 
               37: 'launch', 38: 'repair', 39: 'ride', 40: 'row', 41: 'sail', 42: 'sit_on', 43: 'stand_on', 
               44: 'tie', 45: 'wash', 46: 'no_interaction', 47: 'carry', 48: 'drink_with', 49: 'hold', 50: 'inspect',
               51: 'lick', 52: 'open', 53: 'pour', 54: 'no_interaction', 55: 'board', 56: 'direct', 57: 'drive', 
               58: 'exit', 59: 'inspect', 60: 'load', 61: 'ride', 62: 'sit_on', 63: 'wash', 64: 'wave', 
               65: 'no_interaction', 66: 'board', 67: 'direct', 68: 'drive', 69: 'hose', 70: 'inspect', 71: 'jump', 
               72: 'load', 73: 'park', 74: 'ride', 75: 'wash', 76: 'no_interaction', 77: 'dry', 78: 'feed', 79: 'hold', 
               80: 'hug', 81: 'kiss', 82: 'pet', 83: 'scratch', 84: 'wash', 85: 'chase', 86: 'no_interaction', 
               87: 'carry', 88: 'hold', 89: 'lie_on', 90: 'sit_on', 91: 'stand_on', 92: 'no_interaction', 93: 'carry', 
               94: 'lie_on', 95: 'sit_on', 96: 'no_interaction', 97: 'feed', 98: 'herd', 99: 'hold', 100: 'hug', 
               101: 'kiss', 102: 'lasso', 103: 'milk', 104: 'pet', 105: 'ride', 106: 'walk', 107: 'no_interaction', 
               108: 'clean', 109: 'eat_at', 110: 'sit_at', 111: 'no_interaction', 112: 'carry', 113: 'dry', 114: 'feed', 
               115: 'groom', 116: 'hold', 117: 'hose', 118: 'hug', 119: 'inspect', 120: 'kiss', 121: 'pet', 122: 'run', 
               123: 'scratch', 124: 'straddle', 125: 'train', 126: 'walk', 127: 'wash', 128: 'chase', 129: 'no_interaction', 
               130: 'feed', 131: 'groom', 132: 'hold', 133: 'hug', 134: 'jump', 135: 'kiss', 136: 'load', 137: 'hop_on', 
               138: 'pet', 139: 'race', 140: 'ride', 141: 'run', 142: 'straddle', 143: 'train', 144: 'walk', 145: 'wash', 
               146: 'no_interaction', 147: 'hold', 148: 'inspect', 149: 'jump', 150: 'hop_on', 151: 'park', 152: 'push', 
               153: 'race', 154: 'ride', 155: 'sit_on', 156: 'straddle', 157: 'turn', 158: 'walk', 159: 'wash', 
               160: 'no_interaction', 161: 'carry', 162: 'greet', 163: 'hold', 164: 'hug', 165: 'kiss', 166: 'stab', 
               167: 'tag', 168: 'teach', 169: 'lick', 170: 'no_interaction', 171: 'carry', 172: 'hold', 173: 'hose', 
               174: 'no_interaction', 175: 'carry', 176: 'feed', 177: 'herd', 178: 'hold', 179: 'hug', 180: 'kiss', 
               181: 'pet', 182: 'ride', 183: 'shear', 184: 'walk', 185: 'wash', 186: 'no_interaction', 187: 'board', 
               188: 'drive', 189: 'exit', 190: 'load', 191: 'ride', 192: 'sit_on', 193: 'wash', 194: 'no_interaction', 
               195: 'control', 196: 'repair', 197: 'watch', 198: 'no_interaction', 199: 'buy', 200: 'cut', 201: 'eat', 
               202: 'hold', 203: 'inspect', 204: 'peel', 205: 'pick', 206: 'smell', 207: 'wash', 208: 'no_interaction', 
               209: 'carry', 210: 'hold', 211: 'inspect', 212: 'open', 213: 'wear', 214: 'no_interaction', 215: 'buy', 
               216: 'carry', 217: 'cut', 218: 'eat', 219: 'hold', 220: 'inspect', 221: 'peel', 222: 'pick', 223: 'smell', 
               224: 'no_interaction', 225: 'break', 226: 'carry', 227: 'hold', 228: 'sign', 229: 'swing', 230: 'throw', 
               231: 'wield', 232: 'no_interaction', 233: 'hold', 234: 'wear', 235: 'no_interaction', 236: 'feed', 237: 'hunt', 
               238: 'watch', 239: 'no_interaction', 240: 'clean', 241: 'lie_on', 242: 'sit_on', 243: 'no_interaction', 
               244: 'inspect', 245: 'lie_on', 246: 'sit_on', 247: 'no_interaction', 248: 'carry', 249: 'hold', 250: 'open', 
               251: 'read', 252: 'no_interaction', 253: 'hold', 254: 'stir', 255: 'wash', 256: 'lick', 257: 'no_interaction', 
               258: 'cut', 259: 'eat', 260: 'hold', 261: 'smell', 262: 'stir', 263: 'wash', 264: 'no_interaction', 265: 'blow', 
               266: 'carry', 267: 'cut', 268: 'eat', 269: 'hold', 270: 'light', 271: 'make', 272: 'pick_up', 273: 'no_interaction', 
               274: 'carry', 275: 'cook', 276: 'cut', 277: 'eat', 278: 'hold', 279: 'peel', 280: 'smell', 281: 'stir', 282: 'wash', 
               283: 'no_interaction', 284: 'carry', 285: 'hold', 286: 'read', 287: 'repair', 288: 'talk_on', 289: 'text_on', 
               290: 'no_interaction', 291: 'check', 292: 'hold', 293: 'repair', 294: 'set', 295: 'no_interaction', 296: 'carry', 
               297: 'drink_with', 298: 'hold', 299: 'inspect', 300: 'pour', 301: 'sip', 302: 'smell', 303: 'fill', 304: 'wash', 
               305: 'no_interaction', 306: 'buy', 307: 'carry', 308: 'eat', 309: 'hold', 310: 'make', 311: 'pick_up', 
               312: 'smell', 313: 'no_interaction', 314: 'feed', 315: 'hold', 316: 'hose', 317: 'hug', 318: 'kiss', 319: 'hop_on', 
               320: 'pet', 321: 'ride', 322: 'walk', 323: 'wash', 324: 'watch', 325: 'no_interaction', 326: 'hug', 327: 'inspect', 
               328: 'open', 329: 'paint', 330: 'no_interaction', 331: 'hold', 332: 'lift', 333: 'stick', 334: 'lick', 335: 'wash', 
               336: 'no_interaction', 337: 'block', 338: 'catch', 339: 'hold', 340: 'spin', 341: 'throw', 342: 'no_interaction', 
               343: 'feed', 344: 'kiss', 345: 'pet', 346: 'ride', 347: 'watch', 348: 'no_interaction', 349: 'hold', 
               350: 'operate', 351: 'repair', 352: 'no_interaction', 353: 'carry', 354: 'hold', 355: 'inspect', 
               356: 'no_interaction', 357: 'carry', 358: 'cook', 359: 'cut', 360: 'eat', 361: 'hold', 362: 'make', 
               363: 'no_interaction', 364: 'carry', 365: 'clean', 366: 'hold', 367: 'type_on', 368: 'no_interaction', 
               369: 'assemble', 370: 'carry', 371: 'fly', 372: 'hold', 373: 'inspect', 374: 'launch', 375: 'pull', 
               376: 'no_interaction', 377: 'cut_with', 378: 'hold', 379: 'stick', 380: 'wash', 381: 'wield', 382: 'lick', 
               383: 'no_interaction', 384: 'hold', 385: 'open', 386: 'read', 387: 'repair', 388: 'type_on', 389: 'no_interaction', 
               390: 'clean', 391: 'open', 392: 'operate', 393: 'no_interaction', 394: 'control', 395: 'hold', 396: 'repair', 
               397: 'no_interaction', 398: 'buy', 399: 'cut', 400: 'eat', 401: 'hold', 402: 'inspect', 403: 'peel', 404: 'pick', 
               405: 'squeeze', 406: 'wash', 407: 'no_interaction', 408: 'clean', 409: 'hold', 410: 'inspect', 411: 'open', 
               412: 'repair', 413: 'operate', 414: 'no_interaction', 415: 'check', 416: 'pay', 417: 'repair', 418: 'no_interaction', 
               419: 'buy', 420: 'carry', 421: 'cook', 422: 'cut', 423: 'eat', 424: 'hold', 425: 'make', 426: 'pick_up', 
               427: 'slide', 428: 'smell', 429: 'no_interaction', 430: 'clean', 431: 'hold', 432: 'move', 433: 'open', 
               434: 'no_interaction', 435: 'hold', 436: 'point', 437: 'swing', 438: 'no_interaction', 439: 'carry', 
               440: 'cook', 441: 'cut', 442: 'eat', 443: 'hold', 444: 'make', 445: 'no_interaction', 446: 'cut_with', 
               447: 'hold', 448: 'open', 449: 'no_interaction', 450: 'clean', 451: 'repair', 452: 'wash', 453: 'no_interaction', 
               454: 'carry', 455: 'flip', 456: 'grind', 457: 'hold', 458: 'jump', 459: 'pick_up', 460: 'ride', 461: 'sit_on', 
               462: 'stand_on', 463: 'no_interaction', 464: 'adjust', 465: 'carry', 466: 'hold', 467: 'inspect', 468: 'jump', 
               469: 'pick_up', 470: 'repair', 471: 'ride', 472: 'stand_on', 473: 'wear', 474: 'no_interaction', 475: 'adjust', 
               476: 'carry', 477: 'grind', 478: 'hold', 479: 'jump', 480: 'ride', 481: 'stand_on', 482: 'wear', 
               483: 'no_interaction', 484: 'hold', 485: 'lick', 486: 'wash', 487: 'sip', 488: 'no_interaction', 489: 'block', 
               490: 'carry', 491: 'catch', 492: 'dribble', 493: 'hit', 494: 'hold', 495: 'inspect', 496: 'kick', 497: 'pick_up', 
               498: 'serve', 499: 'sign', 500: 'spin', 501: 'throw', 502: 'no_interaction', 503: 'hold', 504: 'stand_under', 
               505: 'stop_at', 506: 'no_interaction', 507: 'carry', 508: 'drag', 509: 'hold', 510: 'hug', 511: 'load', 
               512: 'open', 513: 'pack', 514: 'pick_up', 515: 'zip', 516: 'no_interaction', 517: 'carry', 518: 'drag', 
               519: 'hold', 520: 'inspect', 521: 'jump', 522: 'lie_on', 523: 'load', 524: 'ride', 525: 'stand_on', 
               526: 'sit_on', 527: 'wash', 528: 'no_interaction', 529: 'carry', 530: 'hold', 531: 'hug', 532: 'kiss', 
               533: 'no_interaction', 534: 'carry', 535: 'hold', 536: 'inspect', 537: 'swing', 538: 'no_interaction', 
               539: 'adjust', 540: 'cut', 541: 'hold', 542: 'inspect', 543: 'pull', 544: 'tie', 545: 'wear', 
               546: 'no_interaction', 547: 'hold', 548: 'operate', 549: 'repair', 550: 'no_interaction', 551: 'clean', 
               552: 'flush', 553: 'open', 554: 'repair', 555: 'sit_on', 556: 'stand_on', 557: 'wash', 558: 'no_interaction', 
               559: 'brush_with', 560: 'hold', 561: 'wash', 562: 'no_interaction', 563: 'install', 564: 'repair', 
               565: 'stand_under', 566: 'stop_at', 567: 'no_interaction', 568: 'direct', 569: 'drive', 570: 'inspect', 
               571: 'load', 572: 'repair', 573: 'ride', 574: 'sit_on', 575: 'wash', 576: 'no_interaction', 577: 'carry', 
               578: 'hold', 579: 'lose', 580: 'open', 581: 'repair', 582: 'set', 583: 'stand_under', 584: 'no_interaction', 
               585: 'hold', 586: 'make', 587: 'paint', 588: 'no_interaction', 589: 'fill', 590: 'hold', 591: 'sip', 
               592: 'toast', 593: 'lick', 594: 'wash', 595: 'no_interaction', 596: 'feed', 597: 'hold', 598: 'pet', 
               599: 'watch', 600: 'no_interaction'}

# hoi_action_dict generate
# with open("../hoi_action.txt", "r") as f:
#     str_temp = f.read().split("\n")[:-1]
#     print(len(str_temp))
# for str_ in str_temp:
#     str_ = str_.split(" ")
#     print(str_)
#     str_ = [i for i in str_ if i !='']
#     print(str_)
#     action_dict[int(str_[0])] = str_[2]
#     # exit()
# print(action_dict)
# exit()

with open("/home/jxy/program/hoi2/analyise_origin_dataset/hoi2otherhoi.txt", "r") as f:
    hoi2otherhoi = eval(f.read())
# print(hoi2otherhoi)
# exit()
# 正常索引，从1开始
action2index = {'adjust': 1, 'assemble': 2, 'block': 3, 'blow': 4, 'board': 5, 'break': 6, 'brush_with': 7, 
                'buy': 8, 'carry': 9, 'catch': 10, 'chase': 11, 'check': 12, 'clean': 13, 'control': 14, 
                'cook': 15, 'cut': 16, 'cut_with': 17, 'direct': 18, 'drag': 19, 'dribble': 20, 'drink_with': 
                21, 'drive': 22, 'dry': 23, 'eat': 24, 'eat_at': 25, 'exit': 26, 'feed': 27, 'fill': 28, 
                'flip': 29, 'flush': 30, 'fly': 31, 'greet': 32, 'grind': 33, 'groom': 34, 'herd': 35, 
                'hit': 36, 'hold': 37, 'hop_on': 38, 'hose': 39, 'hug': 40, 'hunt': 41, 'inspect': 42, 
                'install': 43, 'jump': 44, 'kick': 45, 'kiss': 46, 'lasso': 47, 'launch': 48, 'lick': 49, 
                'lie_on': 50, 'lift': 51, 'light': 52, 'load': 53, 'lose': 54, 'make': 55, 'milk': 56, 
                'move': 57, 'no_interaction': 58, 'open': 59, 'operate': 60, 'pack': 61, 'paint': 62, 
                'park': 63, 'pay': 64, 'peel': 65, 'pet': 66, 'pick': 67, 'pick_up': 68, 'point': 69, 
                'pour': 70, 'pull': 71, 'push': 72, 'race': 73, 'read': 74, 'release': 75, 'repair': 76, 
                'ride': 77, 'row': 78, 'run': 79, 'sail': 80, 'scratch': 81, 'serve': 82, 'set': 83, 
                'shear': 84, 'sign': 85, 'sip': 86, 'sit_at': 87, 'sit_on': 88, 'slide': 89, 'smell': 90, 
                'spin': 91, 'squeeze': 92, 'stab': 93, 'stand_on': 94, 'stand_under': 95, 'stick': 96, 
                'stir': 97, 'stop_at': 98, 'straddle': 99, 'swing': 100, 'tag': 101, 'talk_on': 102, 
                'teach': 103, 'text_on': 104, 'throw': 105, 'tie': 106, 'toast': 107, 'train': 108, 
                'turn': 109, 'type_on': 110, 'walk': 111, 'wash': 112, 'watch': 113, 'wave': 114, 'wear': 115, 
                'wield': 116, 'zip': 117}
# action2index generate
# with open("../action.txt", "r") as f:
#     str_temp = f.read().split("\n")[:-1]
#     print(len(str_temp))
# for str_ in str_temp:
#     str_ = str_.split(" ")
#     print(str_)
#     str_ = [i for i in str_ if i !='']
#     print(str_)
#     action2index[str_[1]] = int(str_[0])
#     # exit()
# print(action2index)
# exit()



# 物体object转化成数字 按顺序从0-79 
# 跟数据集里的80类物体列表不一样！ 
# 这个是yolo的
obj2name = {0: 'person', 1: 'bicycle', 2: 'car', 3: 'motorcycle', 4: 'airplane',
                   5: 'bus', 6: 'train', 7: 'truck', 8: 'boat', 9: 'traffic light',
                   10: 'fire hydrant', 11: 'stop sign', 12: 'parking meter', 13: 'bench',
                   14: 'bird', 15: 'cat', 16: 'dog', 17: 'horse', 18: 'sheep', 19: 'cow',
                   20: 'elephant', 21: 'bear', 22: 'zebra', 23: 'giraffe', 24: 'backpack',
                   25: 'umbrella', 26: 'handbag', 27: 'tie', 28: 'suitcase', 29: 'frisbee',
                   30: 'skis', 31: 'snowboard', 32: 'sports ball', 33: 'kite', 34: 'baseball bat',
                   35: 'baseball glove', 36: 'skateboard', 37: 'surfboard', 38: 'tennis racket',
                   39: 'bottle', 40: 'wine glass', 41: 'cup', 42: 'fork', 43: 'knife', 44: 'spoon',
                   45: 'bowl', 46: 'banana', 47: 'apple', 48: 'sandwich', 49: 'orange',
                   50: 'broccoli', 51: 'carrot', 52: 'hot dog', 53: 'pizza', 54: 'donut',
                   55: 'cake', 56: 'chair', 57: 'couch', 58: 'potted plant', 59: 'bed', 60: 'dining table',
                   61: 'toilet', 62: 'tv', 63: 'laptop', 64: 'mouse', 65: 'remote', 66: 'keyboard',
                   67: 'cell phone', 68: 'microwave', 69: 'oven', 70: 'toaster', 71: 'sink',
                   72: 'refrigerator', 73: 'book', 74: 'clock', 75: 'vase', 76: 'scissors',
                   77: 'teddy bear', 78: 'hair drier', 79: 'toothbrush'}




# gen-vlkt预定义好的 就有600个句子 但是还得改 前面的键不对 改成从1,2,3,4到600 根据k值去取句子 
hico_text_label = {(4, 4): 'a photo of a person boarding an airplane',
                   (17, 4): 'a photo of a person directing an airplane',
                   (25, 4): 'a photo of a person exiting an airplane',
                   (30, 4): 'a photo of a person flying an airplane',
                   (41, 4): 'a photo of a person inspecting an airplane',
                   (52, 4): 'a photo of a person loading an airplane',
                   (76, 4): 'a photo of a person riding an airplane',
                   (87, 4): 'a photo of a person sitting on an airplane',
                   (111, 4): 'a photo of a person washing an airplane',
                   (57, 4): 'a photo of a person and an airplane', (8, 1): 'a photo of a person carrying a bicycle',
                   (36, 1): 'a photo of a person holding a bicycle',
                   (41, 1): 'a photo of a person inspecting a bicycle',
                   (43, 1): 'a photo of a person jumping a bicycle',
                   (37, 1): 'a photo of a person hopping on a bicycle',
                   (62, 1): 'a photo of a person parking a bicycle',
                   (71, 1): 'a photo of a person pushing a bicycle',
                   (75, 1): 'a photo of a person repairing a bicycle',
                   (76, 1): 'a photo of a person riding a bicycle',
                   (87, 1): 'a photo of a person sitting on a bicycle',
                   (98, 1): 'a photo of a person straddling a bicycle',
                   (110, 1): 'a photo of a person walking a bicycle',
                   (111, 1): 'a photo of a person washing a bicycle', (57, 1): 'a photo of a person and a bicycle', # 23
                   (10, 14): 'a photo of a person chasing a bird', (26, 14): 'a photo of a person feeding a bird',
                   (36, 14): 'a photo of a person holding a bird', (65, 14): 'a photo of a person petting a bird',
                   (74, 14): 'a photo of a person releasing a bird',
                   (112, 14): 'a photo of a person watching a bird', (57, 14): 'a photo of a person and a bird', # 30
                   (4, 8): 'a photo of a person boarding a boat', (21, 8): 'a photo of a person driving a boat',
                   (25, 8): 'a photo of a person exiting a boat', (41, 8): 'a photo of a person inspecting a boat',
                   (43, 8): 'a photo of a person jumping a boat', (47, 8): 'a photo of a person launching a boat',
                   (75, 8): 'a photo of a person repairing a boat', (76, 8): 'a photo of a person riding a boat',
                   (77, 8): 'a photo of a person rowing a boat', (79, 8): 'a photo of a person sailing a boat',
                   (87, 8): 'a photo of a person sitting on a boat',
                   (93, 8): 'a photo of a person standing on a boat', (105, 8): 'a photo of a person tying a boat',
                   (111, 8): 'a photo of a person washing a boat', (57, 8): 'a photo of a person and a boat', # 45
                   (8, 39): 'a photo of a person carrying a bottle',
                   (20, 39): 'a photo of a person drinking with a bottle',
                   (36, 39): 'a photo of a person holding a bottle',
                   (41, 39): 'a photo of a person inspecting a bottle',
                   (48, 39): 'a photo of a person licking a bottle',
                   (58, 39): 'a photo of a person opening a bottle',
                   (69, 39): 'a photo of a person pouring a bottle', (57, 39): 'a photo of a person and a bottle', # 53
                   (4, 5): 'a photo of a person boarding a bus', (17, 5): 'a photo of a person directing a bus',
                   (21, 5): 'a photo of a person driving a bus', (25, 5): 'a photo of a person exiting a bus',
                   (41, 5): 'a photo of a person inspecting a bus', (52, 5): 'a photo of a person loading a bus',
                   (76, 5): 'a photo of a person riding a bus', (87, 5): 'a photo of a person sitting on a bus',
                   (111, 5): 'a photo of a person washing a bus', (113, 5): 'a photo of a person waving a bus',
                   (57, 5): 'a photo of a person and a bus', (4, 2): 'a photo of a person boarding a car',
                   (17, 2): 'a photo of a person directing a car', (21, 2): 'a photo of a person driving a car',
                   (38, 2): 'a photo of a person hosing a car', (41, 2): 'a photo of a person inspecting a car',
                   (43, 2): 'a photo of a person jumping a car', (52, 2): 'a photo of a person loading a car',
                   (62, 2): 'a photo of a person parking a car', (76, 2): 'a photo of a person riding a car',
                   (111, 2): 'a photo of a person washing a car', (57, 2): 'a photo of a person and a car',
                   (22, 15): 'a photo of a person drying a cat', (26, 15): 'a photo of a person feeding a cat',
                   (36, 15): 'a photo of a person holding a cat', (39, 15): 'a photo of a person hugging a cat',
                   (45, 15): 'a photo of a person kissing a cat', (65, 15): 'a photo of a person petting a cat',
                   (80, 15): 'a photo of a person scratching a cat', (111, 15): 'a photo of a person washing a cat',
                   (10, 15): 'a photo of a person chasing a cat', (57, 15): 'a photo of a person and a cat', # 85
                   (8, 56): 'a photo of a person carrying a chair', (36, 56): 'a photo of a person holding a chair',
                   (49, 56): 'a photo of a person lying on a chair',
                   (87, 56): 'a photo of a person sitting on a chair',
                   (93, 56): 'a photo of a person standing on a chair', (57, 56): 'a photo of a person and a chair', # 91
                   (8, 57): 'a photo of a person carrying a couch',
                   (49, 57): 'a photo of a person lying on a couch',
                   (87, 57): 'a photo of a person sitting on a couch', (57, 57): 'a photo of a person and a couch', # 95
                   (26, 19): 'a photo of a person feeding a cow', (34, 19): 'a photo of a person herding a cow',
                   (36, 19): 'a photo of a person holding a cow', (39, 19): 'a photo of a person hugging a cow',
                   (45, 19): 'a photo of a person kissing a cow', (46, 19): 'a photo of a person lassoing a cow',
                   (55, 19): 'a photo of a person milking a cow', (65, 19): 'a photo of a person petting a cow',
                   (76, 19): 'a photo of a person riding a cow', (110, 19): 'a photo of a person walking a cow',
                   (57, 19): 'a photo of a person and a cow', # 106
                   (12, 60): 'a photo of a person cleaning a dining table',
                   (24, 60): 'a photo of a person eating at a dining table',
                   (86, 60): 'a photo of a person sitting at a dining table',
                   (57, 60): 'a photo of a person and a dining table', # 110
                   (8, 16): 'a photo of a person carrying a dog', (22, 16): 'a photo of a person drying a dog',
                   (26, 16): 'a photo of a person feeding a dog', (33, 16): 'a photo of a person grooming a dog',
                   (36, 16): 'a photo of a person holding a dog', (38, 16): 'a photo of a person hosing a dog',
                   (39, 16): 'a photo of a person hugging a dog', (41, 16): 'a photo of a person inspecting a dog',
                   (45, 16): 'a photo of a person kissing a dog', (65, 16): 'a photo of a person petting a dog',
                   (78, 16): 'a photo of a person running a dog', (80, 16): 'a photo of a person scratching a dog',
                   (98, 16): 'a photo of a person straddling a dog',
                   (107, 16): 'a photo of a person training a dog', (110, 16): 'a photo of a person walking a dog',
                   (111, 16): 'a photo of a person washing a dog', (10, 16): 'a photo of a person chasing a dog',
                   (57, 16): 'a photo of a person and a dog', (26, 17): 'a photo of a person feeding a horse',
                   (33, 17): 'a photo of a person grooming a horse',
                   (36, 17): 'a photo of a person holding a horse', (39, 17): 'a photo of a person hugging a horse',
                   (43, 17): 'a photo of a person jumping a horse', (45, 17): 'a photo of a person kissing a horse',
                   (52, 17): 'a photo of a person loading a horse',
                   (37, 17): 'a photo of a person hopping on a horse',
                   (65, 17): 'a photo of a person petting a horse', (72, 17): 'a photo of a person racing a horse',
                   (76, 17): 'a photo of a person riding a horse', (78, 17): 'a photo of a person running a horse',
                   (98, 17): 'a photo of a person straddling a horse',
                   (107, 17): 'a photo of a person training a horse',
                   (110, 17): 'a photo of a person walking a horse',
                   (111, 17): 'a photo of a person washing a horse', (57, 17): 'a photo of a person and a horse', # 145
                   (36, 3): 'a photo of a person holding a motorcycle',
                   (41, 3): 'a photo of a person inspecting a motorcycle',
                   (43, 3): 'a photo of a person jumping a motorcycle',
                   (37, 3): 'a photo of a person hopping on a motorcycle',
                   (62, 3): 'a photo of a person parking a motorcycle',
                   (71, 3): 'a photo of a person pushing a motorcycle',
                   (72, 3): 'a photo of a person racing a motorcycle',
                   (76, 3): 'a photo of a person riding a motorcycle',
                   (87, 3): 'a photo of a person sitting on a motorcycle',
                   (98, 3): 'a photo of a person straddling a motorcycle',
                   (108, 3): 'a photo of a person turning a motorcycle',
                   (110, 3): 'a photo of a person walking a motorcycle',
                   (111, 3): 'a photo of a person washing a motorcycle',
                   (57, 3): 'a photo of a person and a motorcycle', (8, 0): 'a photo of a person carrying a person',
                   (31, 0): 'a photo of a person greeting a person',
                   (36, 0): 'a photo of a person holding a person', (39, 0): 'a photo of a person hugging a person',
                   (45, 0): 'a photo of a person kissing a person',
                   (92, 0): 'a photo of a person stabbing a person',
                   (100, 0): 'a photo of a person tagging a person',
                   (102, 0): 'a photo of a person teaching a person',
                   (48, 0): 'a photo of a person licking a person', (57, 0): 'a photo of a person and a person', # 169
                   (8, 58): 'a photo of a person carrying a potted plant',
                   (36, 58): 'a photo of a person holding a potted plant',
                   (38, 58): 'a photo of a person hosing a potted plant',
                   (57, 58): 'a photo of a person and a potted plant', # 173
                   (8, 18): 'a photo of a person carrying a sheep', (26, 18): 'a photo of a person feeding a sheep',
                   (34, 18): 'a photo of a person herding a sheep', (36, 18): 'a photo of a person holding a sheep',
                   (39, 18): 'a photo of a person hugging a sheep', (45, 18): 'a photo of a person kissing a sheep',
                   (65, 18): 'a photo of a person petting a sheep', (76, 18): 'a photo of a person riding a sheep',
                   (83, 18): 'a photo of a person shearing a sheep',
                   (110, 18): 'a photo of a person walking a sheep',
                   (111, 18): 'a photo of a person washing a sheep', (57, 18): 'a photo of a person and a sheep', # 185
                   (4, 6): 'a photo of a person boarding a train', (21, 6): 'a photo of a person driving a train',
                   (25, 6): 'a photo of a person exiting a train', (52, 6): 'a photo of a person loading a train',
                   (76, 6): 'a photo of a person riding a train', (87, 6): 'a photo of a person sitting on a train',
                   (111, 6): 'a photo of a person washing a train', (57, 6): 'a photo of a person and a train', # 193
                   (13, 62): 'a photo of a person controlling a tv', (75, 62): 'a photo of a person repairing a tv',
                   (112, 62): 'a photo of a person watching a tv', (57, 62): 'a photo of a person and a tv', # 197
                   (7, 47): 'a photo of a person buying an apple', (15, 47): 'a photo of a person cutting an apple',
                   (23, 47): 'a photo of a person eating an apple',
                   (36, 47): 'a photo of a person holding an apple',
                   (41, 47): 'a photo of a person inspecting an apple',
                   (64, 47): 'a photo of a person peeling an apple',
                   (66, 47): 'a photo of a person picking an apple',
                   (89, 47): 'a photo of a person smelling an apple',
                   (111, 47): 'a photo of a person washing an apple', (57, 47): 'a photo of a person and an apple', # 207
                   (8, 24): 'a photo of a person carrying a backpack',
                   (36, 24): 'a photo of a person holding a backpack',
                   (41, 24): 'a photo of a person inspecting a backpack',
                   (58, 24): 'a photo of a person opening a backpack',
                   (114, 24): 'a photo of a person wearing a backpack',
                   (57, 24): 'a photo of a person and a backpack', (7, 46): 'a photo of a person buying a banana',
                   (8, 46): 'a photo of a person carrying a banana',
                   (15, 46): 'a photo of a person cutting a banana',
                   (23, 46): 'a photo of a person eating a banana',
                   (36, 46): 'a photo of a person holding a banana',
                   (41, 46): 'a photo of a person inspecting a banana',
                   (64, 46): 'a photo of a person peeling a banana',
                   (66, 46): 'a photo of a person picking a banana',
                   (89, 46): 'a photo of a person smelling a banana', (57, 46): 'a photo of a person and a banana', # 223
                   (5, 34): 'a photo of a person breaking a baseball bat',
                   (8, 34): 'a photo of a person carrying a baseball bat',
                   (36, 34): 'a photo of a person holding a baseball bat',
                   (84, 34): 'a photo of a person signing a baseball bat',
                   (99, 34): 'a photo of a person swinging a baseball bat',
                   (104, 34): 'a photo of a person throwing a baseball bat',
                   (115, 34): 'a photo of a person wielding a baseball bat',
                   (57, 34): 'a photo of a person and a baseball bat', # 231
                   (36, 35): 'a photo of a person holding a baseball glove',
                   (114, 35): 'a photo of a person wearing a baseball glove',
                   (57, 35): 'a photo of a person and a baseball glove', # 234
                   (26, 21): 'a photo of a person feeding a bear', (40, 21): 'a photo of a person hunting a bear',
                   (112, 21): 'a photo of a person watching a bear', (57, 21): 'a photo of a person and a bear', # 238
                   (12, 59): 'a photo of a person cleaning a bed', (49, 59): 'a photo of a person lying on a bed',
                   (87, 59): 'a photo of a person sitting on a bed', (57, 59): 'a photo of a person and a bed', # 242
                   (41, 13): 'a photo of a person inspecting a bench',
                   (49, 13): 'a photo of a person lying on a bench',
                   (87, 13): 'a photo of a person sitting on a bench', (57, 13): 'a photo of a person and a bench', # 246
                   (8, 73): 'a photo of a person carrying a book', (36, 73): 'a photo of a person holding a book',
                   (58, 73): 'a photo of a person opening a book', (73, 73): 'a photo of a person reading a book',
                   (57, 73): 'a photo of a person and a book', (36, 45): 'a photo of a person holding a bowl',
                   (96, 45): 'a photo of a person stirring a bowl', (111, 45): 'a photo of a person washing a bowl',
                   (48, 45): 'a photo of a person licking a bowl', (57, 45): 'a photo of a person and a bowl', # 256
                   (15, 50): 'a photo of a person cutting a broccoli',
                   (23, 50): 'a photo of a person eating a broccoli',
                   (36, 50): 'a photo of a person holding a broccoli',
                   (89, 50): 'a photo of a person smelling a broccoli',
                   (96, 50): 'a photo of a person stirring a broccoli',
                   (111, 50): 'a photo of a person washing a broccoli',
                   (57, 50): 'a photo of a person and a broccoli', (3, 55): 'a photo of a person blowing a cake',
                   (8, 55): 'a photo of a person carrying a cake', (15, 55): 'a photo of a person cutting a cake',
                   (23, 55): 'a photo of a person eating a cake', (36, 55): 'a photo of a person holding a cake',
                   (51, 55): 'a photo of a person lighting a cake', (54, 55): 'a photo of a person making a cake',
                   (67, 55): 'a photo of a person picking up a cake', (57, 55): 'a photo of a person and a cake',
                   (8, 51): 'a photo of a person carrying a carrot',
                   (14, 51): 'a photo of a person cooking a carrot',
                   (15, 51): 'a photo of a person cutting a carrot',
                   (23, 51): 'a photo of a person eating a carrot',
                   (36, 51): 'a photo of a person holding a carrot',
                   (64, 51): 'a photo of a person peeling a carrot',
                   (89, 51): 'a photo of a person smelling a carrot',
                   (96, 51): 'a photo of a person stirring a carrot',
                   (111, 51): 'a photo of a person washing a carrot', (57, 51): 'a photo of a person and a carrot',
                   (8, 67): 'a photo of a person carrying a cell phone',
                   (36, 67): 'a photo of a person holding a cell phone',
                   (73, 67): 'a photo of a person reading a cell phone',
                   (75, 67): 'a photo of a person repairing a cell phone',
                   (101, 67): 'a photo of a person talking on a cell phone',
                   (103, 67): 'a photo of a person texting on a cell phone',
                   (57, 67): 'a photo of a person and a cell phone',
                   (11, 74): 'a photo of a person checking a clock',
                   (36, 74): 'a photo of a person holding a clock',
                   (75, 74): 'a photo of a person repairing a clock',
                   (82, 74): 'a photo of a person setting a clock', (57, 74): 'a photo of a person and a clock',
                   (8, 41): 'a photo of a person carrying a cup',
                   (20, 41): 'a photo of a person drinking with a cup',
                   (36, 41): 'a photo of a person holding a cup', (41, 41): 'a photo of a person inspecting a cup',
                   (69, 41): 'a photo of a person pouring a cup', (85, 41): 'a photo of a person sipping a cup',
                   (89, 41): 'a photo of a person smelling a cup', (27, 41): 'a photo of a person filling a cup',
                   (111, 41): 'a photo of a person washing a cup', (57, 41): 'a photo of a person and a cup',
                   (7, 54): 'a photo of a person buying a donut', (8, 54): 'a photo of a person carrying a donut',
                   (23, 54): 'a photo of a person eating a donut', (36, 54): 'a photo of a person holding a donut',
                   (54, 54): 'a photo of a person making a donut',
                   (67, 54): 'a photo of a person picking up a donut',
                   (89, 54): 'a photo of a person smelling a donut', (57, 54): 'a photo of a person and a donut',
                   (26, 20): 'a photo of a person feeding an elephant',
                   (36, 20): 'a photo of a person holding an elephant',
                   (38, 20): 'a photo of a person hosing an elephant',
                   (39, 20): 'a photo of a person hugging an elephant',
                   (45, 20): 'a photo of a person kissing an elephant',
                   (37, 20): 'a photo of a person hopping on an elephant',
                   (65, 20): 'a photo of a person petting an elephant',
                   (76, 20): 'a photo of a person riding an elephant',
                   (110, 20): 'a photo of a person walking an elephant',
                   (111, 20): 'a photo of a person washing an elephant',
                   (112, 20): 'a photo of a person watching an elephant',
                   (57, 20): 'a photo of a person and an elephant',
                   (39, 10): 'a photo of a person hugging a fire hydrant',
                   (41, 10): 'a photo of a person inspecting a fire hydrant',
                   (58, 10): 'a photo of a person opening a fire hydrant',
                   (61, 10): 'a photo of a person painting a fire hydrant',
                   (57, 10): 'a photo of a person and a fire hydrant',
                   (36, 42): 'a photo of a person holding a fork', (50, 42): 'a photo of a person lifting a fork',
                   (95, 42): 'a photo of a person sticking a fork', (48, 42): 'a photo of a person licking a fork',
                   (111, 42): 'a photo of a person washing a fork', (57, 42): 'a photo of a person and a fork',
                   (2, 29): 'a photo of a person blocking a frisbee',
                   (9, 29): 'a photo of a person catching a frisbee',
                   (36, 29): 'a photo of a person holding a frisbee',
                   (90, 29): 'a photo of a person spinning a frisbee',
                   (104, 29): 'a photo of a person throwing a frisbee',
                   (57, 29): 'a photo of a person and a frisbee', (26, 23): 'a photo of a person feeding a giraffe',
                   (45, 23): 'a photo of a person kissing a giraffe',
                   (65, 23): 'a photo of a person petting a giraffe',
                   (76, 23): 'a photo of a person riding a giraffe',
                   (112, 23): 'a photo of a person watching a giraffe',
                   (57, 23): 'a photo of a person and a giraffe',
                   (36, 78): 'a photo of a person holding a hair drier',
                   (59, 78): 'a photo of a person operating a hair drier',
                   (75, 78): 'a photo of a person repairing a hair drier',
                   (57, 78): 'a photo of a person and a hair drier',
                   (8, 26): 'a photo of a person carrying a handbag',
                   (36, 26): 'a photo of a person holding a handbag',
                   (41, 26): 'a photo of a person inspecting a handbag',
                   (57, 26): 'a photo of a person and a handbag', (8, 52): 'a photo of a person carrying a hot dog',
                   (14, 52): 'a photo of a person cooking a hot dog',
                   (15, 52): 'a photo of a person cutting a hot dog',
                   (23, 52): 'a photo of a person eating a hot dog',
                   (36, 52): 'a photo of a person holding a hot dog',
                   (54, 52): 'a photo of a person making a hot dog', (57, 52): 'a photo of a person and a hot dog',
                   (8, 66): 'a photo of a person carrying a keyboard',
                   (12, 66): 'a photo of a person cleaning a keyboard',
                   (36, 66): 'a photo of a person holding a keyboard',
                   (109, 66): 'a photo of a person typing on a keyboard',
                   (57, 66): 'a photo of a person and a keyboard', (1, 33): 'a photo of a person assembling a kite',
                   (8, 33): 'a photo of a person carrying a kite', (30, 33): 'a photo of a person flying a kite',
                   (36, 33): 'a photo of a person holding a kite',
                   (41, 33): 'a photo of a person inspecting a kite',
                   (47, 33): 'a photo of a person launching a kite', (70, 33): 'a photo of a person pulling a kite',
                   (57, 33): 'a photo of a person and a kite', (16, 43): 'a photo of a person cutting with a knife',
                   (36, 43): 'a photo of a person holding a knife',
                   (95, 43): 'a photo of a person sticking a knife',
                   (111, 43): 'a photo of a person washing a knife',
                   (115, 43): 'a photo of a person wielding a knife',
                   (48, 43): 'a photo of a person licking a knife', (57, 43): 'a photo of a person and a knife',
                   (36, 63): 'a photo of a person holding a laptop',
                   (58, 63): 'a photo of a person opening a laptop',
                   (73, 63): 'a photo of a person reading a laptop',
                   (75, 63): 'a photo of a person repairing a laptop',
                   (109, 63): 'a photo of a person typing on a laptop',
                   (57, 63): 'a photo of a person and a laptop',
                   (12, 68): 'a photo of a person cleaning a microwave',
                   (58, 68): 'a photo of a person opening a microwave',
                   (59, 68): 'a photo of a person operating a microwave',
                   (57, 68): 'a photo of a person and a microwave',
                   (13, 64): 'a photo of a person controlling a mouse',
                   (36, 64): 'a photo of a person holding a mouse',
                   (75, 64): 'a photo of a person repairing a mouse', (57, 64): 'a photo of a person and a mouse',
                   (7, 49): 'a photo of a person buying an orange',
                   (15, 49): 'a photo of a person cutting an orange',
                   (23, 49): 'a photo of a person eating an orange',
                   (36, 49): 'a photo of a person holding an orange',
                   (41, 49): 'a photo of a person inspecting an orange',
                   (64, 49): 'a photo of a person peeling an orange',
                   (66, 49): 'a photo of a person picking an orange',
                   (91, 49): 'a photo of a person squeezing an orange',
                   (111, 49): 'a photo of a person washing an orange',
                   (57, 49): 'a photo of a person and an orange', (12, 69): 'a photo of a person cleaning an oven',
                   (36, 69): 'a photo of a person holding an oven',
                   (41, 69): 'a photo of a person inspecting an oven',
                   (58, 69): 'a photo of a person opening an oven',
                   (75, 69): 'a photo of a person repairing an oven',
                   (59, 69): 'a photo of a person operating an oven', (57, 69): 'a photo of a person and an oven',
                   (11, 12): 'a photo of a person checking a parking meter',
                   (63, 12): 'a photo of a person paying a parking meter',
                   (75, 12): 'a photo of a person repairing a parking meter',
                   (57, 12): 'a photo of a person and a parking meter',
                   (7, 53): 'a photo of a person buying a pizza', (8, 53): 'a photo of a person carrying a pizza',
                   (14, 53): 'a photo of a person cooking a pizza', (15, 53): 'a photo of a person cutting a pizza',
                   (23, 53): 'a photo of a person eating a pizza', (36, 53): 'a photo of a person holding a pizza',
                   (54, 53): 'a photo of a person making a pizza',
                   (67, 53): 'a photo of a person picking up a pizza',
                   (88, 53): 'a photo of a person sliding a pizza',
                   (89, 53): 'a photo of a person smelling a pizza', (57, 53): 'a photo of a person and a pizza',
                   (12, 72): 'a photo of a person cleaning a refrigerator',
                   (36, 72): 'a photo of a person holding a refrigerator',
                   (56, 72): 'a photo of a person moving a refrigerator',
                   (58, 72): 'a photo of a person opening a refrigerator',
                   (57, 72): 'a photo of a person and a refrigerator',
                   (36, 65): 'a photo of a person holding a remote',
                   (68, 65): 'a photo of a person pointing a remote',
                   (99, 65): 'a photo of a person swinging a remote', (57, 65): 'a photo of a person and a remote',
                   (8, 48): 'a photo of a person carrying a sandwich',
                   (14, 48): 'a photo of a person cooking a sandwich',
                   (15, 48): 'a photo of a person cutting a sandwich',
                   (23, 48): 'a photo of a person eating a sandwich',
                   (36, 48): 'a photo of a person holding a sandwich',
                   (54, 48): 'a photo of a person making a sandwich',
                   (57, 48): 'a photo of a person and a sandwich',
                   (16, 76): 'a photo of a person cutting with a scissors',
                   (36, 76): 'a photo of a person holding a scissors',
                   (58, 76): 'a photo of a person opening a scissors',
                   (57, 76): 'a photo of a person and a scissors', (12, 71): 'a photo of a person cleaning a sink',
                   (75, 71): 'a photo of a person repairing a sink',
                   (111, 71): 'a photo of a person washing a sink', (57, 71): 'a photo of a person and a sink',
                   (8, 36): 'a photo of a person carrying a skateboard',
                   (28, 36): 'a photo of a person flipping a skateboard',
                   (32, 36): 'a photo of a person grinding a skateboard',
                   (36, 36): 'a photo of a person holding a skateboard',
                   (43, 36): 'a photo of a person jumping a skateboard',
                   (67, 36): 'a photo of a person picking up a skateboard',
                   (76, 36): 'a photo of a person riding a skateboard',
                   (87, 36): 'a photo of a person sitting on a skateboard',
                   (93, 36): 'a photo of a person standing on a skateboard',
                   (57, 36): 'a photo of a person and a skateboard',
                   (0, 30): 'a photo of a person adjusting a skis', (8, 30): 'a photo of a person carrying a skis',
                   (36, 30): 'a photo of a person holding a skis',
                   (41, 30): 'a photo of a person inspecting a skis',
                   (43, 30): 'a photo of a person jumping a skis',
                   (67, 30): 'a photo of a person picking up a skis',
                   (75, 30): 'a photo of a person repairing a skis', (76, 30): 'a photo of a person riding a skis',
                   (93, 30): 'a photo of a person standing on a skis',
                   (114, 30): 'a photo of a person wearing a skis', (57, 30): 'a photo of a person and a skis',
                   (0, 31): 'a photo of a person adjusting a snowboard',
                   (8, 31): 'a photo of a person carrying a snowboard',
                   (32, 31): 'a photo of a person grinding a snowboard',
                   (36, 31): 'a photo of a person holding a snowboard',
                   (43, 31): 'a photo of a person jumping a snowboard',
                   (76, 31): 'a photo of a person riding a snowboard',
                   (93, 31): 'a photo of a person standing on a snowboard',
                   (114, 31): 'a photo of a person wearing a snowboard',
                   (57, 31): 'a photo of a person and a snowboard', (36, 44): 'a photo of a person holding a spoon',
                   (48, 44): 'a photo of a person licking a spoon',
                   (111, 44): 'a photo of a person washing a spoon',
                   (85, 44): 'a photo of a person sipping a spoon', (57, 44): 'a photo of a person and a spoon',
                   (2, 32): 'a photo of a person blocking a sports ball',
                   (8, 32): 'a photo of a person carrying a sports ball',
                   (9, 32): 'a photo of a person catching a sports ball',
                   (19, 32): 'a photo of a person dribbling a sports ball',
                   (35, 32): 'a photo of a person hitting a sports ball',
                   (36, 32): 'a photo of a person holding a sports ball',
                   (41, 32): 'a photo of a person inspecting a sports ball',
                   (44, 32): 'a photo of a person kicking a sports ball',
                   (67, 32): 'a photo of a person picking up a sports ball',
                   (81, 32): 'a photo of a person serving a sports ball',
                   (84, 32): 'a photo of a person signing a sports ball',
                   (90, 32): 'a photo of a person spinning a sports ball',
                   (104, 32): 'a photo of a person throwing a sports ball',
                   (57, 32): 'a photo of a person and a sports ball',
                   (36, 11): 'a photo of a person holding a stop sign',
                   (94, 11): 'a photo of a person standing under a stop sign',
                   (97, 11): 'a photo of a person stopping at a stop sign',
                   (57, 11): 'a photo of a person and a stop sign',
                   (8, 28): 'a photo of a person carrying a suitcase',
                   (18, 28): 'a photo of a person dragging a suitcase',
                   (36, 28): 'a photo of a person holding a suitcase',
                   (39, 28): 'a photo of a person hugging a suitcase',
                   (52, 28): 'a photo of a person loading a suitcase',
                   (58, 28): 'a photo of a person opening a suitcase',
                   (60, 28): 'a photo of a person packing a suitcase',
                   (67, 28): 'a photo of a person picking up a suitcase',
                   (116, 28): 'a photo of a person zipping a suitcase',
                   (57, 28): 'a photo of a person and a suitcase',
                   (8, 37): 'a photo of a person carrying a surfboard',
                   (18, 37): 'a photo of a person dragging a surfboard',
                   (36, 37): 'a photo of a person holding a surfboard',
                   (41, 37): 'a photo of a person inspecting a surfboard',
                   (43, 37): 'a photo of a person jumping a surfboard',
                   (49, 37): 'a photo of a person lying on a surfboard',
                   (52, 37): 'a photo of a person loading a surfboard',
                   (76, 37): 'a photo of a person riding a surfboard',
                   (93, 37): 'a photo of a person standing on a surfboard',
                   (87, 37): 'a photo of a person sitting on a surfboard',
                   (111, 37): 'a photo of a person washing a surfboard',
                   (57, 37): 'a photo of a person and a surfboard',
                   (8, 77): 'a photo of a person carrying a teddy bear',
                   (36, 77): 'a photo of a person holding a teddy bear',
                   (39, 77): 'a photo of a person hugging a teddy bear',
                   (45, 77): 'a photo of a person kissing a teddy bear',
                   (57, 77): 'a photo of a person and a teddy bear',
                   (8, 38): 'a photo of a person carrying a tennis racket',
                   (36, 38): 'a photo of a person holding a tennis racket',
                   (41, 38): 'a photo of a person inspecting a tennis racket',
                   (99, 38): 'a photo of a person swinging a tennis racket',
                   (57, 38): 'a photo of a person and a tennis racket',
                   (0, 27): 'a photo of a person adjusting a tie', (15, 27): 'a photo of a person cutting a tie',
                   (36, 27): 'a photo of a person holding a tie', (41, 27): 'a photo of a person inspecting a tie',
                   (70, 27): 'a photo of a person pulling a tie', (105, 27): 'a photo of a person tying a tie',
                   (114, 27): 'a photo of a person wearing a tie', (57, 27): 'a photo of a person and a tie',
                   (36, 70): 'a photo of a person holding a toaster',
                   (59, 70): 'a photo of a person operating a toaster',
                   (75, 70): 'a photo of a person repairing a toaster',
                   (57, 70): 'a photo of a person and a toaster', (12, 61): 'a photo of a person cleaning a toilet',
                   (29, 61): 'a photo of a person flushing a toilet',
                   (58, 61): 'a photo of a person opening a toilet',
                   (75, 61): 'a photo of a person repairing a toilet',
                   (87, 61): 'a photo of a person sitting on a toilet',
                   (93, 61): 'a photo of a person standing on a toilet',
                   (111, 61): 'a photo of a person washing a toilet', (57, 61): 'a photo of a person and a toilet',
                   (6, 79): 'a photo of a person brushing with a toothbrush',
                   (36, 79): 'a photo of a person holding a toothbrush',
                   (111, 79): 'a photo of a person washing a toothbrush',
                   (57, 79): 'a photo of a person and a toothbrush',
                   (42, 9): 'a photo of a person installing a traffic light',
                   (75, 9): 'a photo of a person repairing a traffic light',
                   (94, 9): 'a photo of a person standing under a traffic light',
                   (97, 9): 'a photo of a person stopping at a traffic light',
                   (57, 9): 'a photo of a person and a traffic light',
                   (17, 7): 'a photo of a person directing a truck', (21, 7): 'a photo of a person driving a truck',
                   (41, 7): 'a photo of a person inspecting a truck',
                   (52, 7): 'a photo of a person loading a truck', (75, 7): 'a photo of a person repairing a truck',
                   (76, 7): 'a photo of a person riding a truck', (87, 7): 'a photo of a person sitting on a truck',
                   (111, 7): 'a photo of a person washing a truck', (57, 7): 'a photo of a person and a truck',
                   (8, 25): 'a photo of a person carrying a umbrella',
                   (36, 25): 'a photo of a person holding a umbrella',
                   (53, 25): 'a photo of a person losing a umbrella',
                   (58, 25): 'a photo of a person opening a umbrella',
                   (75, 25): 'a photo of a person repairing a umbrella',
                   (82, 25): 'a photo of a person setting a umbrella',
                   (94, 25): 'a photo of a person standing under a umbrella',
                   (57, 25): 'a photo of a person and a umbrella', (36, 75): 'a photo of a person holding a vase',
                   (54, 75): 'a photo of a person making a vase', (61, 75): 'a photo of a person painting a vase',
                   (57, 75): 'a photo of a person and a vase', (27, 40): 'a photo of a person filling a wine glass',
                   (36, 40): 'a photo of a person holding a wine glass',
                   (85, 40): 'a photo of a person sipping a wine glass',
                   (106, 40): 'a photo of a person toasting a wine glass',
                   (48, 40): 'a photo of a person licking a wine glass',
                   (111, 40): 'a photo of a person washing a wine glass',
                   (57, 40): 'a photo of a person and a wine glass',
                   (26, 22): 'a photo of a person feeding a zebra', (36, 22): 'a photo of a person holding a zebra',
                   (65, 22): 'a photo of a person petting a zebra',
                   (112, 22): 'a photo of a person watching a zebra', (57, 22): 'a photo of a person and a zebra'}
# 修改后的
'''
{0: 'a photo of a person boarding an airplane',
1: 'a photo of a person directing an airplane',
2: 'a photo of a person exiting an airplane', 
3: 'a photo of a person flying an airplane', 
4: 'a photo of a person inspecting an airplane', 
5: 'a photo of a person loading an airplane', 
6: 'a photo of a person riding an airplane', 
7: 'a photo of a person sitting on an airplane', 
8: 'a photo of a person washing an airplane', 
9: 'a photo of a person and an airplane', 
10: 'a photo of a person carrying a bicycle', 11: 'a photo of a person holding a bicycle', 12: 'a photo of a person inspecting a bicycle', 13: 'a photo of a person jumping a bicycle', 14: 'a photo of a person hopping on a bicycle', 15: 'a photo of a person parking a bicycle', 16: 'a photo of a person pushing a bicycle', 17: 'a photo of a person repairing a bicycle', 18: 'a photo of a person riding a bicycle', 19: 'a photo of a person sitting on a bicycle', 20: 'a photo of a person straddling a bicycle', 21: 'a photo of a person walking a bicycle', 22: 'a photo of a person washing a bicycle', 23: 'a photo of a person and a bicycle', 24: 'a photo of a person chasing a bird', 25: 'a photo of a person feeding a bird', 26: 'a photo of a person holding a bird', 27: 'a photo of a person petting a bird', 28: 'a photo of a person releasing a bird', 29: 'a photo of a person watching a bird', 30: 'a photo of a person and a bird', 31: 'a photo of a person boarding a boat', 32: 'a photo of a person driving a boat', 33: 'a photo of a person exiting a boat', 34: 'a photo of a person inspecting a boat', 35: 'a photo of a person jumping a boat', 36: 'a photo of a person launching a boat', 37: 'a photo of a person repairing a boat', 38: 'a photo of a person riding a boat', 39: 'a photo of a person rowing a boat', 40: 'a photo of a person sailing a boat', 41: 'a photo of a person sitting on a boat', 42: 'a photo of a person standing on a boat', 43: 'a photo of a person tying a boat', 44: 'a photo of a person washing a boat', 45: 'a photo of a person and a boat', 46: 'a photo of a person carrying a bottle', 47: 'a photo of a person drinking with a bottle', 48: 'a photo of a person holding a bottle', 49: 'a photo of a person inspecting a bottle', 50: 'a photo of a person licking a bottle', 51: 'a photo of a person opening a bottle', 52: 'a photo of a person pouring a bottle', 53: 'a photo of a person and a bottle', 54: 'a photo of a person boarding a bus', 55: 'a photo of a person directing a bus', 56: 'a photo of a person driving a bus', 57: 'a photo of a person exiting a bus', 58: 'a photo of a person inspecting a bus', 59: 'a photo of a person loading a bus', 60: 'a photo of a person riding a bus', 61: 'a photo of a person sitting on a bus', 62: 'a photo of a person washing a bus', 63: 'a photo of a person waving a bus', 64: 'a photo of a person and a bus', 65: 'a photo of a person boarding a car', 66: 'a photo of a person directing a car', 67: 'a photo of a person driving a car', 68: 'a photo of a person hosing a car', 69: 'a photo of a person inspecting a car', 70: 'a photo of a person jumping a car', 71: 'a photo of a person loading a car', 72: 'a photo of a person parking a car', 73: 'a photo of a person riding a car', 74: 'a photo of a person washing a car', 75: 'a photo of a person and a car', 76: 'a photo of a person drying a cat', 77: 'a photo of a person feeding a cat', 78: 'a photo of a person holding a cat', 79: 'a photo of a person hugging a cat', 80: 'a photo of a person kissing a cat', 81: 'a photo of a person petting a cat', 82: 'a photo of a person scratching a cat', 83: 'a photo of a person washing a cat', 84: 'a photo of a person chasing a cat', 85: 'a photo of a person and a cat', 86: 'a photo of a person carrying a chair', 87: 'a photo of a person holding a chair', 88: 'a photo of a person lying on a chair', 89: 'a photo of a person sitting on a chair', 90: 'a photo of a person standing on a chair', 91: 'a photo of a person and a chair', 92: 'a photo of a person carrying a couch', 93: 'a photo of a person lying on a couch', 94: 'a photo of a person sitting on a couch', 95: 'a photo of a person and a couch', 96: 'a photo of a person feeding a cow', 97: 'a photo of a person herding a cow', 98: 'a photo of a person holding a cow', 99: 'a photo of a person hugging a cow', 100: 'a photo of a person kissing a cow', 101: 'a photo of a person lassoing a cow', 102: 'a photo of a person milking a cow', 103: 'a photo of a person petting a cow', 104: 'a photo of a person riding a cow', 105: 'a photo of a person walking a cow', 106: 'a photo of a person and a cow', 107: 'a photo of a person cleaning a dining table', 108: 'a photo of a person eating at a dining table', 109: 'a photo of a person sitting at a dining table', 110: 'a photo of a person and a dining table', 111: 'a photo of a person carrying a dog', 112: 'a photo of a person drying a dog', 113: 'a photo of a person feeding a dog', 114: 'a photo of a person grooming a dog', 115: 'a photo of a person holding a dog', 116: 'a photo of a person hosing a dog', 117: 'a photo of a person hugging a dog', 118: 'a photo of a person inspecting a dog', 119: 'a photo of a person kissing a dog', 120: 'a photo of a person petting a dog', 121: 'a photo of a person running a dog', 122: 'a photo of a person scratching a dog', 123: 'a photo of a person straddling a dog', 124: 'a photo of a person training a dog', 125: 'a photo of a person walking a dog', 126: 'a photo of a person washing a dog', 127: 'a photo of a person chasing a dog', 128: 'a photo of a person and a dog', 129: 'a photo of a person feeding a horse', 130: 'a photo of a person grooming a horse', 131: 'a photo of a person holding a horse', 132: 'a photo of a person hugging a horse', 133: 'a photo of a person jumping a horse', 134: 'a photo of a person kissing a horse', 135: 'a photo of a person loading a horse', 136: 'a photo of a person hopping on a horse', 137: 'a photo of a person petting a horse', 138: 'a photo of a person racing a horse', 139: 'a photo of a person riding a horse', 140: 'a photo of a person running a horse', 141: 'a photo of a person straddling a horse', 142: 'a photo of a person training a horse', 143: 'a photo of a person walking a horse', 144: 'a photo of a person washing a horse', 145: 'a photo of a person and a horse', 146: 'a photo of a person holding a motorcycle', 147: 'a photo of a person inspecting a motorcycle', 148: 'a photo of a person jumping a motorcycle', 149: 'a photo of a person hopping on a motorcycle', 150: 'a photo of a person parking a motorcycle', 151: 'a photo of a person pushing a motorcycle', 152: 'a photo of a person racing a motorcycle', 153: 'a photo of a person riding a motorcycle', 154: 'a photo of a person sitting on a motorcycle', 155: 'a photo of a person straddling a motorcycle', 156: 'a photo of a person turning a motorcycle', 157: 'a photo of a person walking a motorcycle', 158: 'a photo of a person washing a motorcycle', 159: 'a photo of a person and a motorcycle', 160: 'a photo of a person carrying a person', 161: 'a photo of a person greeting a person', 162: 'a photo of a person holding a person', 163: 'a photo of a person hugging a person', 164: 'a photo of a person kissing a person', 165: 'a photo of a person stabbing a person', 166: 'a photo of a person tagging a person', 167: 'a photo of a person teaching a person', 168: 'a photo of a person licking a person', 169: 'a photo of a person and a person', 170: 'a photo of a person carrying a potted plant', 171: 'a photo of a person holding a potted plant', 172: 'a photo of a person hosing a potted plant', 173: 'a photo of a person and a potted plant', 174: 'a photo of a person carrying a sheep', 175: 'a photo of a person feeding a sheep', 176: 'a photo of a person herding a sheep', 177: 'a photo of a person holding a sheep', 178: 'a photo of a person hugging a sheep', 179: 'a photo of a person kissing a sheep', 180: 'a photo of a person petting a sheep', 181: 'a photo of a person riding a sheep', 182: 'a photo of a person shearing a sheep', 183: 'a photo of a person walking a sheep', 184: 'a photo of a person washing a sheep', 185: 'a photo of a person and a sheep', 186: 'a photo of a person boarding a train', 187: 'a photo of a person driving a train', 188: 'a photo of a person exiting a train', 189: 'a photo of a person loading a train', 190: 'a photo of a person riding a train', 191: 'a photo of a person sitting on a train', 192: 'a photo of a person washing a train', 193: 'a photo of a person and a train', 194: 'a photo of a person controlling a tv', 195: 'a photo of a person repairing a tv', 196: 'a photo of a person watching a tv', 197: 'a photo of a person and a tv', 198: 'a photo of a person buying an apple', 199: 'a photo of a person cutting an apple', 200: 'a photo of a person eating an apple', 201: 'a photo of a person holding an apple', 202: 'a photo of a person inspecting an apple', 203: 'a photo of a person peeling an apple', 204: 'a photo of a person picking an apple', 205: 'a photo of a person smelling an apple', 206: 'a photo of a person washing an apple', 207: 'a photo of a person and an apple', 208: 'a photo of a person carrying a backpack', 209: 'a photo of a person holding a backpack', 210: 'a photo of a person inspecting a backpack', 211: 'a photo of a person opening a backpack', 212: 'a photo of a person wearing a backpack', 213: 'a photo of a person and a backpack', 214: 'a photo of a person buying a banana', 215: 'a photo of a person carrying a banana', 216: 'a photo of a person cutting a banana', 217: 'a photo of a person eating a banana', 218: 'a photo of a person holding a banana', 219: 'a photo of a person inspecting a banana', 220: 'a photo of a person peeling a banana', 221: 'a photo of a person picking a banana', 222: 'a photo of a person smelling a banana', 223: 'a photo of a person and a banana', 224: 'a photo of a person breaking a baseball bat', 225: 'a photo of a person carrying a baseball bat', 226: 'a photo of a person holding a baseball bat', 227: 'a photo of a person signing a baseball bat', 228: 'a photo of a person swinging a baseball bat', 229: 'a photo of a person throwing a baseball bat', 230: 'a photo of a person wielding a baseball bat', 231: 'a photo of a person and a baseball bat', 232: 'a photo of a person holding a baseball glove', 233: 'a photo of a person wearing a baseball glove', 234: 'a photo of a person and a baseball glove', 235: 'a photo of a person feeding a bear', 236: 'a photo of a person hunting a bear', 237: 'a photo of a person watching a bear', 238: 'a photo of a person and a bear', 239: 'a photo of a person cleaning a bed', 240: 'a photo of a person lying on a bed', 241: 'a photo of a person sitting on a bed', 242: 'a photo of a person and a bed', 243: 'a photo of a person inspecting a bench', 244: 'a photo of a person lying on a bench', 245: 'a photo of a person sitting on a bench', 246: 'a photo of a person and a bench', 247: 'a photo of a person carrying a book', 248: 'a photo of a person holding a book', 249: 'a photo of a person opening a book', 250: 'a photo of a person reading a book', 251: 'a photo of a person and a book', 252: 'a photo of a person holding a bowl', 253: 'a photo of a person stirring a bowl', 254: 'a photo of a person washing a bowl', 255: 'a photo of a person licking a bowl', 256: 'a photo of a person and a bowl', 257: 'a photo of a person cutting a broccoli', 258: 'a photo of a person eating a broccoli', 259: 'a photo of a person holding a broccoli', 260: 'a photo of a person smelling a broccoli', 261: 'a photo of a person stirring a broccoli', 262: 'a photo of a person washing a broccoli', 263: 'a photo of a person and a broccoli', 264: 'a photo of a person blowing a cake', 265: 'a photo of a person carrying a cake', 266: 'a photo of a person cutting a cake', 267: 'a photo of a person eating a cake', 268: 'a photo of a person holding a cake', 269: 'a photo of a person lighting a cake', 270: 'a photo of a person making a cake', 271: 'a photo of a person picking up a cake', 272: 'a photo of a person and a cake', 273: 'a photo of a person carrying a carrot', 274: 'a photo of a person cooking a carrot', 275: 'a photo of a person cutting a carrot', 276: 'a photo of a person eating a carrot', 277: 'a photo of a person holding a carrot', 278: 'a photo of a person peeling a carrot', 279: 'a photo of a person smelling a carrot', 280: 'a photo of a person stirring a carrot', 281: 'a photo of a person washing a carrot', 282: 'a photo of a person and a carrot', 283: 'a photo of a person carrying a cell phone', 284: 'a photo of a person holding a cell phone', 285: 'a photo of a person reading a cell phone', 286: 'a photo of a person repairing a cell phone', 287: 'a photo of a person talking on a cell phone', 288: 'a photo of a person texting on a cell phone', 289: 'a photo of a person and a cell phone', 290: 'a photo of a person checking a clock', 291: 'a photo of a person holding a clock', 292: 'a photo of a person repairing a clock', 293: 'a photo of a person setting a clock', 294: 'a photo of a person and a clock', 295: 'a photo of a person carrying a cup', 296: 'a photo of a person drinking with a cup', 297: 'a photo of a person holding a cup', 298: 'a photo of a person inspecting a cup', 299: 'a photo of a person pouring a cup', 300: 'a photo of a person sipping a cup', 301: 'a photo of a person smelling a cup', 302: 'a photo of a person filling a cup', 303: 'a photo of a person washing a cup', 304: 'a photo of a person and a cup', 305: 'a photo of a person buying a donut', 306: 'a photo of a person carrying a donut', 307: 'a photo of a person eating a donut', 308: 'a photo of a person holding a donut', 309: 'a photo of a person making a donut', 310: 'a photo of a person picking up a donut', 311: 'a photo of a person smelling a donut', 312: 'a photo of a person and a donut', 313: 'a photo of a person feeding an elephant', 314: 'a photo of a person holding an elephant', 315: 'a photo of a person hosing an elephant', 316: 'a photo of a person hugging an elephant', 317: 'a photo of a person kissing an elephant', 318: 'a photo of a person hopping on an elephant', 319: 'a photo of a person petting an elephant', 320: 'a photo of a person riding an elephant', 321: 'a photo of a person walking an elephant', 322: 'a photo of a person washing an elephant', 323: 'a photo of a person watching an elephant', 324: 'a photo of a person and an elephant', 325: 'a photo of a person hugging a fire hydrant', 326: 'a photo of a person inspecting a fire hydrant', 327: 'a photo of a person opening a fire hydrant', 328: 'a photo of a person painting a fire hydrant', 329: 'a photo of a person and a fire hydrant', 330: 'a photo of a person holding a fork', 331: 'a photo of a person lifting a fork', 332: 'a photo of a person sticking a fork', 333: 'a photo of a person licking a fork', 334: 'a photo of a person washing a fork', 335: 'a photo of a person and a fork', 336: 'a photo of a person blocking a frisbee', 337: 'a photo of a person catching a frisbee', 338: 'a photo of a person holding a frisbee', 339: 'a photo of a person spinning a frisbee', 340: 'a photo of a person throwing a frisbee', 341: 'a photo of a person and a frisbee', 342: 'a photo of a person feeding a giraffe', 343: 'a photo of a person kissing a giraffe', 344: 'a photo of a person petting a giraffe', 345: 'a photo of a person riding a giraffe', 346: 'a photo of a person watching a giraffe', 347: 'a photo of a person and a giraffe', 348: 'a photo of a person holding a hair drier', 349: 'a photo of a person operating a hair drier', 350: 'a photo of a person repairing a hair drier', 351: 'a photo of a person and a hair drier', 352: 'a photo of a person carrying a handbag', 353: 'a photo of a person holding a handbag', 354: 'a photo of a person inspecting a handbag', 355: 'a photo of a person and a handbag', 356: 'a photo of a person carrying a hot dog', 357: 'a photo of a person cooking a hot dog', 358: 'a photo of a person cutting a hot dog', 359: 'a photo of a person eating a hot dog', 360: 'a photo of a person holding a hot dog', 361: 'a photo of a person making a hot dog', 362: 'a photo of a person and a hot dog', 363: 'a photo of a person carrying a keyboard', 364: 'a photo of a person cleaning a keyboard', 365: 'a photo of a person holding a keyboard', 366: 'a photo of a person typing on a keyboard', 367: 'a photo of a person and a keyboard', 368: 'a photo of a person assembling a kite', 369: 'a photo of a person carrying a kite', 370: 'a photo of a person flying a kite', 371: 'a photo of a person holding a kite', 372: 'a photo of a person inspecting a kite', 373: 'a photo of a person launching a kite', 374: 'a photo of a person pulling a kite', 375: 'a photo of a person and a kite', 376: 'a photo of a person cutting with a knife', 377: 'a photo of a person holding a knife', 378: 'a photo of a person sticking a knife', 379: 'a photo of a person washing a knife', 380: 'a photo of a person wielding a knife', 381: 'a photo of a person licking a knife', 382: 'a photo of a person and a knife', 383: 'a photo of a person holding a laptop', 384: 'a photo of a person opening a laptop', 385: 'a photo of a person reading a laptop', 386: 'a photo of a person repairing a laptop', 387: 'a photo of a person typing on a laptop', 388: 'a photo of a person and a laptop', 389: 'a photo of a person cleaning a microwave', 390: 'a photo of a person opening a microwave', 391: 'a photo of a person operating a microwave', 392: 'a photo of a person and a microwave', 393: 'a photo of a person controlling a mouse', 394: 'a photo of a person holding a mouse', 395: 'a photo of a person repairing a mouse', 396: 'a photo of a person and a mouse', 397: 'a photo of a person buying an orange', 398: 'a photo of a person cutting an orange', 399: 'a photo of a person eating an orange', 400: 'a photo of a person holding an orange', 401: 'a photo of a person inspecting an orange', 402: 'a photo of a person peeling an orange', 403: 'a photo of a person picking an orange', 404: 'a photo of a person squeezing an orange', 405: 'a photo of a person washing an orange', 406: 'a photo of a person and an orange', 407: 'a photo of a person cleaning an oven', 408: 'a photo of a person holding an oven', 409: 'a photo of a person inspecting an oven', 410: 'a photo of a person opening an oven', 411: 'a photo of a person repairing an oven', 412: 'a photo of a person operating an oven', 413: 'a photo of a person and an oven', 414: 'a photo of a person checking a parking meter', 415: 'a photo of a person paying a parking meter', 416: 'a photo of a person repairing a parking meter', 417: 'a photo of a person and a parking meter', 418: 'a photo of a person buying a pizza', 419: 'a photo of a person carrying a pizza', 420: 'a photo of a person cooking a pizza', 421: 'a photo of a person cutting a pizza', 422: 'a photo of a person eating a pizza', 423: 'a photo of a person holding a pizza', 424: 'a photo of a person making a pizza', 425: 'a photo of a person picking up a pizza', 426: 'a photo of a person sliding a pizza', 427: 'a photo of a person smelling a pizza', 428: 'a photo of a person and a pizza', 429: 'a photo of a person cleaning a refrigerator', 430: 'a photo of a person holding a refrigerator', 431: 'a photo of a person moving a refrigerator', 432: 'a photo of a person opening a refrigerator', 433: 'a photo of a person and a refrigerator', 434: 'a photo of a person holding a remote', 435: 'a photo of a person pointing a remote', 436: 'a photo of a person swinging a remote', 437: 'a photo of a person and a remote', 438: 'a photo of a person carrying a sandwich', 439: 'a photo of a person cooking a sandwich', 440: 'a photo of a person cutting a sandwich', 441: 'a photo of a person eating a sandwich', 442: 'a photo of a person holding a sandwich', 443: 'a photo of a person making a sandwich', 444: 'a photo of a person and a sandwich', 445: 'a photo of a person cutting with a scissors', 446: 'a photo of a person holding a scissors', 447: 'a photo of a person opening a scissors', 448: 'a photo of a person and a scissors', 449: 'a photo of a person cleaning a sink', 450: 'a photo of a person repairing a sink', 451: 'a photo of a person washing a sink', 452: 'a photo of a person and a sink', 453: 'a photo of a person carrying a skateboard', 454: 'a photo of a person flipping a skateboard', 455: 'a photo of a person grinding a skateboard', 456: 'a photo of a person holding a skateboard', 457: 'a photo of a person jumping a skateboard', 458: 'a photo of a person picking up a skateboard', 459: 'a photo of a person riding a skateboard', 460: 'a photo of a person sitting on a skateboard', 461: 'a photo of a person standing on a skateboard', 462: 'a photo of a person and a skateboard', 463: 'a photo of a person adjusting a skis', 464: 'a photo of a person carrying a skis', 465: 'a photo of a person holding a skis', 466: 'a photo of a person inspecting a skis', 467: 'a photo of a person jumping a skis', 468: 'a photo of a person picking up a skis', 469: 'a photo of a person repairing a skis', 470: 'a photo of a person riding a skis', 471: 'a photo of a person standing on a skis', 472: 'a photo of a person wearing a skis', 473: 'a photo of a person and a skis', 474: 'a photo of a person adjusting a snowboard', 475: 'a photo of a person carrying a snowboard', 476: 'a photo of a person grinding a snowboard', 477: 'a photo of a person holding a snowboard', 478: 'a photo of a person jumping a snowboard', 479: 'a photo of a person riding a snowboard', 480: 'a photo of a person standing on a snowboard', 481: 'a photo of a person wearing a snowboard', 482: 'a photo of a person and a snowboard', 483: 'a photo of a person holding a spoon', 484: 'a photo of a person licking a spoon', 485: 'a photo of a person washing a spoon', 486: 'a photo of a person sipping a spoon', 487: 'a photo of a person and a spoon', 488: 'a photo of a person blocking a sports ball', 489: 'a photo of a person carrying a sports ball', 490: 'a photo of a person catching a sports ball', 491: 'a photo of a person dribbling a sports ball', 492: 'a photo of a person hitting a sports ball', 493: 'a photo of a person holding a sports ball', 494: 'a photo of a person inspecting a sports ball', 495: 'a photo of a person kicking a sports ball', 496: 'a photo of a person picking up a sports ball', 497: 'a photo of a person serving a sports ball', 498: 'a photo of a person signing a sports ball', 499: 'a photo of a person spinning a sports ball', 500: 'a photo of a person throwing a sports ball', 501: 'a photo of a person and a sports ball', 502: 'a photo of a person holding a stop sign', 503: 'a photo of a person standing under a stop sign', 504: 'a photo of a person stopping at a stop sign', 505: 'a photo of a person and a stop sign', 506: 'a photo of a person carrying a suitcase', 507: 'a photo of a person dragging a suitcase', 508: 'a photo of a person holding a suitcase', 509: 'a photo of a person hugging a suitcase', 510: 'a photo of a person loading a suitcase', 511: 'a photo of a person opening a suitcase', 512: 'a photo of a person packing a suitcase', 513: 'a photo of a person picking up a suitcase', 514: 'a photo of a person zipping a suitcase', 515: 'a photo of a person and a suitcase', 516: 'a photo of a person carrying a surfboard', 517: 'a photo of a person dragging a surfboard', 518: 'a photo of a person holding a surfboard', 519: 'a photo of a person inspecting a surfboard', 520: 'a photo of a person jumping a surfboard', 521: 'a photo of a person lying on a surfboard', 522: 'a photo of a person loading a surfboard', 523: 'a photo of a person riding a surfboard', 524: 'a photo of a person standing on a surfboard', 525: 'a photo of a person sitting on a surfboard', 526: 'a photo of a person washing a surfboard', 527: 'a photo of a person and a surfboard', 528: 'a photo of a person carrying a teddy bear', 529: 'a photo of a person holding a teddy bear', 530: 'a photo of a person hugging a teddy bear', 531: 'a photo of a person kissing a teddy bear', 532: 'a photo of a person and a teddy bear', 533: 'a photo of a person carrying a tennis racket', 534: 'a photo of a person holding a tennis racket', 535: 'a photo of a person inspecting a tennis racket', 536: 'a photo of a person swinging a tennis racket', 537: 'a photo of a person and a tennis racket', 538: 'a photo of a person adjusting a tie', 539: 'a photo of a person cutting a tie', 540: 'a photo of a person holding a tie', 541: 'a photo of a person inspecting a tie', 542: 'a photo of a person pulling a tie', 543: 'a photo of a person tying a tie', 544: 'a photo of a person wearing a tie', 545: 'a photo of a person and a tie', 546: 'a photo of a person holding a toaster', 547: 'a photo of a person operating a toaster', 548: 'a photo of a person repairing a toaster', 549: 'a photo of a person and a toaster', 550: 'a photo of a person cleaning a toilet', 551: 'a photo of a person flushing a toilet', 552: 'a photo of a person opening a toilet', 553: 'a photo of a person repairing a toilet', 554: 'a photo of a person sitting on a toilet', 555: 'a photo of a person standing on a toilet', 556: 'a photo of a person washing a toilet', 557: 'a photo of a person and a toilet', 558: 'a photo of a person brushing with a toothbrush', 559: 'a photo of a person holding a toothbrush', 560: 'a photo of a person washing a toothbrush', 561: 'a photo of a person and a toothbrush', 562: 'a photo of a person installing a traffic light', 563: 'a photo of a person repairing a traffic light', 564: 'a photo of a person standing under a traffic light', 565: 'a photo of a person stopping at a traffic light', 566: 'a photo of a person and a traffic light', 567: 'a photo of a person directing a truck', 568: 'a photo of a person driving a truck', 569: 'a photo of a person inspecting a truck', 570: 'a photo of a person loading a truck', 571: 'a photo of a person repairing a truck', 572: 'a photo of a person riding a truck', 573: 'a photo of a person sitting on a truck', 574: 'a photo of a person washing a truck', 575: 'a photo of a person and a truck', 576: 'a photo of a person carrying a umbrella', 577: 'a photo of a person holding a umbrella', 578: 'a photo of a person losing a umbrella', 579: 'a photo of a person opening a umbrella', 580: 'a photo of a person repairing a umbrella', 581: 'a photo of a person setting a umbrella', 582: 'a photo of a person standing under a umbrella', 583: 'a photo of a person and a umbrella', 584: 'a photo of a person holding a vase', 585: 'a photo of a person making a vase', 586: 'a photo of a person painting a vase', 587: 'a photo of a person and a vase', 588: 'a photo of a person filling a wine glass', 589: 'a photo of a person holding a wine glass', 590: 'a photo of a person sipping a wine glass', 591: 'a photo of a person toasting a wine glass', 592: 'a photo of a person licking a wine glass', 593: 'a photo of a person washing a wine glass', 594: 'a photo of a person and a wine glass', 595: 'a photo of a person feeding a zebra', 596: 'a photo of a person holding a zebra', 597: 'a photo of a person petting a zebra', 598: 'a photo of a person watching a zebra', 599: 'a photo of a person and a zebra'}
'''

hico_text_label_no_object = {}
for id in hico_text_label.keys():
    if " an " in hico_text_label[id]:
        hico_text_label_no_object[id] = hico_text_label[id].split(" an ")[0]
        # print(hico_text_label[id].split(" an ")[0])
        # exit()
    else:
        hico_text_label_no_object[id] = " a ".join(hico_text_label[id].split(" a ")[:-1])
        # print(" a ".join(hico_text_label[id].split(" a ")[:-1]))
        # exit()
    # hico_text_label_no_object
# print(hico_text_label_no_object)


# hico_text_label
# a = 4
# count_start = 0
# count_end = 0
# hico_object2label_index = {}
# print(len(hico_text_label.keys()))
# for id in hico_text_label.keys():
#     if a == id[1]:
#         count_end += 1
#         continue
#     else:
#         hico_object2label_index[a] = [count_start, count_end - 1]
#         a = id[1]
#         count_start = count_end
#         count_end += 1
# print(count_end)
# hico_object2label_index[a] = [count_start, count_end - 1]

# # hico_object2label_index[a] = [count_start, count_end]
# print(hico_object2label_index)
hico_obj_text_label = [(0, 'a photo of a person'), (1, 'a photo of a bicycle'), (2, 'a photo of a car'),
                       (3, 'a photo of a motorcycle'), (4, 'a photo of an airplane'), (5, 'a photo of a bus'),
                       (6, 'a photo of a train'), (7, 'a photo of a truck'), (8, 'a photo of a boat'),
                       (9, 'a photo of a traffic light'), (10, 'a photo of a fire hydrant'),
                       (11, 'a photo of a stop sign'), (12, 'a photo of a parking meter'), (13, 'a photo of a bench'),
                       (14, 'a photo of a bird'), (15, 'a photo of a cat'), (16, 'a photo of a dog'),
                       (17, 'a photo of a horse'), (18, 'a photo of a sheep'), (19, 'a photo of a cow'),
                       (20, 'a photo of an elephant'), (21, 'a photo of a bear'), (22, 'a photo of a zebra'),
                       (23, 'a photo of a giraffe'), (24, 'a photo of a backpack'), (25, 'a photo of a umbrella'),
                       (26, 'a photo of a handbag'), (27, 'a photo of a tie'), (28, 'a photo of a suitcase'),
                       (29, 'a photo of a frisbee'), (30, 'a photo of a skis'), (31, 'a photo of a snowboard'),
                       (32, 'a photo of a sports ball'), (33, 'a photo of a kite'), (34, 'a photo of a baseball bat'),
                       (35, 'a photo of a baseball glove'), (36, 'a photo of a skateboard'),
                       (37, 'a photo of a surfboard'), (38, 'a photo of a tennis racket'), (39, 'a photo of a bottle'),
                       (40, 'a photo of a wine glass'), (41, 'a photo of a cup'), (42, 'a photo of a fork'),
                       (43, 'a photo of a knife'), (44, 'a photo of a spoon'), (45, 'a photo of a bowl'),
                       (46, 'a photo of a banana'), (47, 'a photo of an apple'), (48, 'a photo of a sandwich'),
                       (49, 'a photo of an orange'), (50, 'a photo of a broccoli'), (51, 'a photo of a carrot'),
                       (52, 'a photo of a hot dog'), (53, 'a photo of a pizza'), (54, 'a photo of a donut'),
                       (55, 'a photo of a cake'), (56, 'a photo of a chair'), (57, 'a photo of a couch'),
                       (58, 'a photo of a potted plant'), (59, 'a photo of a bed'), (60, 'a photo of a dining table'),
                       (61, 'a photo of a toilet'), (62, 'a photo of a tv'), (63, 'a photo of a laptop'),
                       (64, 'a photo of a mouse'), (65, 'a photo of a remote'), (66, 'a photo of a keyboard'),
                       (67, 'a photo of a cell phone'), (68, 'a photo of a microwave'), (69, 'a photo of an oven'),
                       (70, 'a photo of a toaster'), (71, 'a photo of a sink'), (72, 'a photo of a refrigerator'),
                       (73, 'a photo of a book'), (74, 'a photo of a clock'), (75, 'a photo of a vase'),
                       (76, 'a photo of a scissors'), (77, 'a photo of a teddy bear'), (78, 'a photo of a hair drier'),
                       (79, 'a photo of a toothbrush'), (80, 'a photo of nothing')]

hico_unseen_index = {
    "default": [],
    # start from 0
    "rare_first": [509, 279, 280, 402, 504, 286, 499, 498, 289, 485, 303, 311, 325, 439, 351, 358, 66, 427, 379, 418,
                   70, 416,
                   389, 90, 395, 76, 397, 84, 135, 262, 401, 592, 560, 586, 548, 593, 526, 181, 257, 539, 535, 260, 596,
                   345, 189,
                   205, 206, 429, 179, 350, 405, 522, 449, 261, 255, 546, 547, 44, 22, 334, 599, 239, 315, 317, 229,
                   158, 195,
                   238, 364, 222, 281, 149, 399, 83, 127, 254, 398, 403, 555, 552, 520, 531, 440, 436, 482, 274, 8, 188,
                   216, 597,
                   77, 407, 556, 469, 474, 107, 390, 410, 27, 381, 463, 99, 184, 100, 292, 517, 80, 333, 62, 354, 104,
                   55, 50,
                   198, 168, 391, 192, 595, 136, 581],  # 120
    "non_rare_first": [38, 41, 20, 18, 245, 11, 19, 154, 459, 42, 155, 139, 60, 461, 577, 153, 582, 89, 141, 576, 75,
                       212, 472, 61,
                       457, 146, 208, 94, 471, 131, 248, 544, 515, 566, 370, 481, 226, 250, 470, 323, 169, 480, 479,
                       230, 385, 73,
                       159, 190, 377, 176, 249, 371, 284, 48, 583, 53, 162, 140, 185, 106, 294, 56, 320, 152, 374, 338,
                       29, 594, 346,
                       456, 589, 45, 23, 67, 478, 223, 493, 228, 240, 215, 91, 115, 337, 559, 7, 218, 518, 297, 191,
                       266, 304, 6, 572,
                       529, 312, 9, 308, 417, 197, 193, 163, 455, 25, 54, 575, 446, 387, 483, 534, 340, 508, 110, 329,
                       246, 173, 506,
                       383, 93, 516, 64],  # 120
    "unseen_object": [111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
                      126, 127, 128, 224, 225, 226, 227, 228, 229, 230, 231, 290, 291, 292, 293,
                      294, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 336, 337,
                      338, 339, 340, 341, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
                      429, 430, 431, 432, 433, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
                      463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 533, 534, 535, 536,
                      537, 558, 559, 560, 561, 595, 596, 597, 598, 599],  # 100
    "unseen_verb": [4, 6, 12, 15, 18, 25, 34, 38, 40, 49, 58, 60, 68, 69, 72, 73, 77, 82, 96, 97, 104, 113, 116, 118,
                    122, 129, 139, 147,
                    150, 153, 165, 166, 172, 175, 176, 181, 190, 202, 210, 212, 219, 227, 228, 233, 235, 243, 298, 313,
                    315, 320, 326, 336,
                    342, 345, 354, 372, 401, 404, 409, 431, 436, 459, 466, 470, 472, 479, 481, 488, 491, 494, 498, 504,
                    519, 523, 535, 536,
                    541, 544, 562, 565, 569, 572, 591, 595]
    # 84, 20 unseen verbs: [41, 100, 99, 91, 34, 42, 97, 84, 26, 106, 38, 56, 92, 79, 19, 76, 80, 2, 114, 62]
}
